to control which external domains may access the API via cross-site AJAX.
* $wgMaintenanceScripts for extensions to add their scripts to the default list
* $wgMemoryLimit has been added, default value '50M'
+* $wgExtraRandompageSQL is deprecated, the SpecialRandomBeforeSQL hook should
+ be used instead
=== New features in 1.16 ===
cutting-edge browsers. E.g., some inputs will be autofocused, users will
not be allowed to submit forms with certain types of invalid values (like
numbers outside the permitted ranges), etc.
+* New hook SpecialRandomBeforeSQL allows extensions to modify or replace the SQL
+ query used in Special:Random and subclasses, deprecating the $wgExtraRandompageSQL
+ config variable
=== Bug fixes in 1.16 ===
hook to remove a core special page
$list: list (array) of core special pages
+'SpecialRandomBeforeSQL': called before building the SQL statement for
+Special:Random and all subclasses
+$page: The RandomPage object
+&$ns: Comma separated list of namespaces used in the query
+&$redirect: 1 or 0, whether to retrieve a redirect or a non-redirect
+&$extra: Extra SQL statements in the WHERE clause, after checking
+$wgExtraRandompageSQL and after subclasses add extra clauses
+&$sql: The query used if the hook returns false, must select
+page_namespace and page_title
+
'SpecialRecentChangesPanel': called when building form options in
SpecialRecentChanges
&$extraOpts: array of added items, to which can be added
/** Use the site's Cascading Style Sheets (CSS)? */
$wgUseSiteCss = true;
-/** Filter for Special:Randompage. Part of a WHERE clause */
+/**
+ * Filter for Special:Randompage. Part of a WHERE clause
+ * @deprecated as of 1.16, use the SpecialRandomBeforeSQL hook
+*/
$wgExtraRandompageSQL = false;
/** Allow the "info" action, very inefficient at the moment */
$extra = $wgExtraRandompageSQL ? "AND ($wgExtraRandompageSQL)" : "";
$extra .= $this->addExtraSQL() ? "AND (".$this->addExtraSQL().")" : "";
- $sql = "SELECT page_title, page_namespace
- FROM $page $use_index
- WHERE page_namespace IN ( $ns )
- AND page_is_redirect = $redirect
- AND page_random >= $randstr
- $extra
- ORDER BY page_random";
-
- $sql = $dbr->limitResult( $sql, 1, 0 );
+ $sql = '';
+ if ( wfRunHooks( 'SpecialRandomBeforeSQL', array( $this, &$ns, &$redirect, &$extra, &$sql ) ) ) {
+ $sql = "SELECT page_title, page_namespace
+ FROM $page $use_index
+ WHERE page_namespace IN ( $ns )
+ AND page_is_redirect = $redirect
+ AND page_random >= $randstr
+ $extra
+ ORDER BY page_random";
+
+ $sql = $dbr->limitResult( $sql, 1, 0 );
+ }
$res = $dbr->query( $sql, __METHOD__ );
return $dbr->fetchObject( $res );
}
- // an alternative to $wgExtraRandompageSQL so extensions
+ // an alternative to $wgExtraRandompageSQL so subclasses
// can add their own SQL by overriding this function
public function addExtraSQL() {
return '';